import pandas as pd

# 检查是否有缺少的信息行
def diff_not_save_stock(source_list, target_list):
    new_list = []
    for i in range(0, len(source_list)):
        source_obj = source_list[i]
        # print(source_obj)
        for j in range(0, len(target_list)):
            target_obj = target_list[j]
            # print(target_obj)
            if source_obj.ts_code == target_obj.ts_code:
                source_obj.is_hs = 'T'
                break
    print(source_list)
    for source_obj in source_list:
        if not source_obj.is_hs == 'T':
            new_list.append(source_obj)
    print(new_list)
    return new_list



def anti_join(x, y, on):
    """
    比较两个dataFrame不同的行
    :param x:
    :param y:
    :param on: y最好是单元数组，不然merge之后会有问题。如没有特殊需求,可以不要这个参数
    :return: 返回x中不包含y的部分
    """
    ans = pd.merge(left=x, right=y, how='left', indicator=True, on=on)
    ans = ans.loc[ans._merge == 'left_only', :].drop(columns='_merge')
    return ans